import Vue from 'vue'
import VueRouter from 'vue-router'
//引入Login组件，Main组件
import Login from '../components/Login.vue'
import Main from '../components/Main.vue'
import Welcome from '../components/Welcome.vue'

Vue.use(VueRouter)


const routes = [
  // 配置Login的路由
  {
    path: "/",
    redirect:"/login" //重定向
  },
  {
    path:"/login",
    component: Login //引入真正的组件
  },
  // 配置Main路由（路径）以及组件
  {
    path: '/main',
    component: Main
  }

]

const router = new VueRouter({
  routes,
  mode: 'history',
  base: process.env.BASE_URL
})


//出现问题的时候使用
const originalPush = VueRouter.prototype.push
VueRouter.prototype.push = function push(location,onResolve,onReject){
  if(onResolve || onReject) return originalPush.call(this, location, coResolve, onReject)
  return originalPush.call(this,location).catch(err=>err)
}
// 挂载路由导航守卫
router.beforeEach((to,from,next)=>{
  // to 将要访问
  // from 从哪里访问
  // next 没有参数，继续访问to路径---放行;  如果有参数，参数是url,则重定向到url上---强制跳转
  if(to.path=="/login") return next(); // 访问路径为登陆
  // 获取flag，session取值(登录页面存入的)
  const userFlag = window.sessionStorage.getItem("user");
  if(!userFlag) return next("/login"); //没有登陆，去登陆
  next(); // 符合要求，放行
});


export default router //暴露出去
